package main

import (
	"encoding/json"
	"fmt"
)

// json 与结构体
// 1.把json语言中的结构体变量 -- > json格式的字符串
// 2. json 格式的字符串， ---> go语言中能识别的结构体变量

type person struct {
	Name string	`json:"name"`			//json外部的包访问外部结构体，变量名首字母需要大写
}

func main() {
	p1 := person{
		Name: "肖禹庭",
	}
	//序列化
	b, err := json.Marshal(p1)
	if err !=nil{
		fmt.Println("marshal filed, err:%v", err)
	}
	fmt.Println(string(b))
	//反序列化
	s2 := `{"name":"常"}`
	var p2 person
	json.Unmarshal([]byte(s2), &p2)  // 需要使用指针将p2传入进去修改
	fmt.Println(p2)
	fmt.Printf("%#v\n",  p2)

}